Arcadian, Volume 1, Issue 05

OCR'ed and cleaned up
by Richard C. Degler
on February 27, 2011
[note: _underscore_]
[Brett .ne. Bilbray]


------------------------- [arcadian Vol. 1, Issue 05] -------------------------
Page 31 - [originally at the bottom.]

[Volume I] NUMBER 5                                           March 23, 1979

_PROGRAMMING KEYBOARD_ status is a mixed bag.  Bally still seems to have a
July-August date for the appearance of the Keyboard.  But there is an internal
question now going on at Bally that asks if it might not be better to have a
$300. Keyboard with lesser capability (but expandable).  The marketing surveys
they have been running have indicated some kind of resistance (understandable)
to a $600+ unit.  They have worked up a piece of hardware as a mockup to use
internally for evaluation.  But the decision (300, 600, maybe both?) must come
soon if a 12-16 week production span is needed after go-ahead to stay within
the 3rd Quarter window they had set up last year for availability.

_HACKER'S MANUAL_ has appeared.  I understand that it is being distributed by
some dealers as an addendum to the regular manual.  If your dealer does not
have a copy of this 18-page document for you, I can make a copy and ship it out
for $2.  Most of the data has already been included in the various issues of
the ARCADIAN as our fellow subscribers have discovered them on their own.  The
'new' material includes: some words on the I/O ports, a few words on the light
pen interface, a block diagram of the sound synthesizer and description, and
considerable detail as to wiring changes in the cassette interface to allow
the addition of a printer jack.

_LATE DATA_ on product availability...
     2005       Star Battle                  $19.95 - out in February
     2007       Pinball                       24.95 \
     3003    Grand Prix/ Demolition Derby     19.95  |
     3004    Desert Fox/Drag Race             19.95  >  March
     4004       Music                         24.95  |
     5003    Backgammon/Checkers              19.95 /

_INTERACTIVE PROGRAMMING_ is being worked on by Jim Unroe. This is a scheme
by which two machines can talk to each other via the cassette interfaces.

_INTERCONNECTION_ to the S.D. Sales Z-80 CPU BOARD (kit $139., P.0. Box 28810
Dallas 75228 is being explored by Pete Wishart up in Canada. He has developed
a wiring scheme to to into the 50-pin connector on the back of the Arcade and
wind up with an S-100-compatible interface.  Still some bugs to be worked out.

_DEALER_ in the Arkansas area is J.W. Taylor, 611 North 2nd, Cabot, 72023
who has an extensive supply, and I believe sends items postpaid.

_LETTERHEAD_ of this issue was donated by Herb Weintraub.  It is an interesting
idea.

_MENU_ can be called up by the following, donated by Martin Nason:
     10 INPUT K
     20 CALL K         insert 3174
The menu will appear, and function fully (don't use the BASIC overlay card)
but why does it _not_ work if you just CALL 3174?

-------------------------------- arcadian -------------------------------------
Page 32 -

_ONBOARD CALCULATOR_ was very briefly mentioned in January.  Here is some
data on this feature.  With this routine, it is possible to perform the four
arithmetic functions with decimals, and use numbers much bigger than the Tiny
BASIC limitation of 3276?.  But it takes up a lot of space.  The operation is
listed as $ N @(A), @(B), @(C) where N is the desired function + - [divide] x
    A is an input address, B is an input address, and C is the answer address.
Each address is the beginning location of an 18-consecutive string, so that
we could have A extending from O to 17, 18 to 35, 36 to 53, etc.  B and C
are similar. Within each of these sets, the decimal point is located at the
near-center, the sign of the number is at the end, adjacent to an overflow
indicator.  Here is an illustration:
sign: 0 = + \--------\
      B = - /       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
               @( ) |17|16|15|14|13|12|11|10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0|
                    +--+--+--+--+--+--+--+--+--+--.--+--+--+--+--+--+--+--+
overflow if Not = 0 ----/                          \-- decimal point

     Each digit of each input must be loaded independently, as well as its
sign.
     As an example, let us multiply 374.2913 by 96.7 to get 36193.96871 :
Note the location of the decimal point and work from there -
Load the first input:
     10 @(10)=3;@(9)=7;@(8)=4;@(7)=2;@(6)=9;@(5)=1;@(4)=3
Load the second input
     20 @(27)=9;@(26)=6;@(25)=7
The registers will look like this:
               @( ) +17+16+15+14+13+12+11+10+9-+8-+7-+6-+5-+4-+3-+2-+1-+0-+
                    | 0| 0| 0| 0| 0| 0| 0| 3| 7| 4| 2| 9| 1| 3| 0| 0| 0| 0|
                    +--+--+--+--+--+--+--+--+--+--.--+--+--+--+--+--+--+--+
               @( ) +35+34+33+32+31+30+29+28+27+26+25+24+23+22+21+20+19+18+
                    | 0| 0| 0| 0| 0| 0| 0| 0| 9| 6| 7| 0| 0| 0| 0| 0| 0| 0|
                    +--+--+--+--+--+--+--+--+--+--.--+--+--+--+--+--+--+--+
List the Operation:
     30 $x@(0),@(18),@(36)             ; RUN
The answer register looks like this:
               @( ) +53+52+51+50+49+48+47+46+45+44+43+42+41+40+39+38+37+36+
                    | 0| 0| 0| 0| 0| 3| 6| 1| 9| 3| 9| 6| 8| 7| 1| 0| 0| 0|
                    +--+--+--+--+--+--+--+--+--+--.--+--+--+--+--+--+--+--+
and to recover it, include
     40 FOR A = 53 TO 36 STEP -1
     50 TV=@(A)
     60 NEXT A
Which will yield        000003619396871000
This technique will suppress the leading zeros - adjust the values in lines
70 and 80 to fit the location of your answer address:
     60 Z=1
     70 IF @(53)=8" PRINT "-"       .If answer is a negative
     80 FOR B=52 TO 44 STEP -1
     90 IF @(B)="0" IF Z GOTO 120
    100 Z=0
    110 TV=@(B)
    120 NEXT B

The locations A, B,and C can be mixed up, or set equal to each other, or
use other locations for memory, saving them for later use.

-------------------------------- arcadian -------------------------------------
Page 33 -

_FORMATTING_(PRINT #N)_ The following is a contribution from Tom Wood with
some of my added comments and example.  " A PRINT statement containing a #N
value is most interesting.  Apparently the value for N following the # sets
the size of a 'window' to be left on the screen for each variable in the
statement.  Variables will be printed right-justified within that window.

  A = 34; B = 973; C= -88; PRINT #4,A,B,".",C  yields the following -
             +---+---+---+---+---+---+---+---+---+---+---+---+---+---+
             |   |   | 3 | 4 |   | 9 | 7 | 3 | . |   |   | - | 8 | 8 |
             +---+---+---+---+---+---+---+---+---+---+---+---+---+---+
We created a window of 4 character spaces wide for each variable on the
PRINT line, noting that . is not a variable.  The window is effective for
the entire PRINT line, or until there is another #N " - Wood.

This gives you the capability to create tabulated columns across the screen
To get This:                   Program this:
                                  10 A=391;B=7721;C=271;D=8143;
     JOHN DOE   391-7721             E=814;F=6392
  BILL WILSON   271-8143          20 PRINT "   JOHN DOE",#6,A,"-",#4,B
  HARRY JONES   814-6392          30 PRINT "BILL WILSON",#6,C,"-",#4,D
                                  40 PRINT "HARRY JONES",#6,E,"-",#4,F

With the Onboard Calculator routine giving decimal calculation, you can
start setting up material necessary for payroll accounting with answers
in nice neat columns.  Has anyone done any business programs?

_PROGRAMS HERE_, contributed by subscribers, include such games as CHECKERS,
STRATEGY FOOTBALL, SLOT MACHINE, BALLY TREK, etc., and which are quite lengthy.
I really haven't had time to give them a good scrubbing, but plan on doing so
next month, and have them available for subscribers.  I finally received a
box of C-10 tapes from Microsystems, so now I can get organized.

_PROGRAMS DIRECT_ from subscribers:
o  Bob Weber 6594 Swartout Rd., Algonac MI 48001 has the following available
at $2 plus a C-30 tape:
     SUB SEARCH                ALIEN PATROL             CALENDAR
     SLOT MACHINE              CONCENTRATION            TIC TAC TOE
     FLIGHT SIMULATOR          HANGMAN                  MATH QUIZ
     OTHELLO                   MASTERMIND               SPACE CHASE
o  Ron Schwenk 6988 Lincoln Creek Circle, Carmichael CA 95608
     MASTERMIND                ONE CHECK                BATNUM
o  Bob Strand 10665 E. Foix Ave., Norwalk CA 90650  $7 for the lot...
     STAR BATTLES              4 DIGIT GUESS            REMEMBER
     ANGLE GAME                SLOT MACHINE             NUMBER WAR
     LUNAR LANDER (enhanced/ expanded)
o  George Hale P.O. Box 186, Lee's Summit MO 64063 has a shoot-it-down type
of game for two that he calls SONIC SATELLITE.  This will be available as
a listing for $4., as a cassette tape @8.50, or loaded on your tape @$6.50.
George will be selling Bally-oriented goods through Applications Programming
Enterprise.

_FOR SALE_  Bally ARCADE with BASIC, CLOWNS, and BASEBALL, $275. W.KIM,
776 Via Catalina, Burbank, CA 915011 (213-767-3963)

-------------------------------- arcadian -------------------------------------
Page 34 -

_MEMORY MAP_                                  Decimal       Hexadecimal

 On Board ROM                                 0 to  8191         0 to 1FFF

 Bally BASIC ROM                           8192 to 12287      2000 to 2FFF

 Screen Memory Area                       16384 to 20479      4000 to 4FFF

    Bally BASIC Graphics/Program Area     16384 to 19983      4000 to 4E10

    Bally BASIC Scratchpad Memory Area    20000 to 20463      4E20 to 4FEF

    Tape Input Buffer                     20002 to 20049      4E22 to 4E51

    Variables begin at                         20078              4E6E

    Line Input Buffer (104 characters)    20180 to 20283      4ED4 to 4F3B

    Stack Area                            20284 to 20462      4F3C to 4FEE

 Text Area [de-interlaced pseudo-memory] -24576 to -22777     A000 to A707

 Note Lookup Table                             12046         2F0E for CR(13)

The above was extracted from the Hacker's Manual.

_SPACE SAVER_ has been located by Bob Weber - If a PRINT "X" is not followed
by another command, the final " is not needed.  A byte saved is a byte
available for another statement.

_ANOTHER DIVISION ROUTINE_ that prints a decimal answer has been developed
by Pete Bowman, This one is a bit laborious as you have to enter a @( )
for each decimal wanted, in line 80.
   10 PRINT "X- Y = Z"       50 FOR W = 1 TO N  (where N is the number of
   20 INPUT "X=?" X                              decimal digits desired)
   30 INPUT "Y=?" Y          60 @(W) = (RM*10) [div] Y
   40 Q = X [div] Y          70 NEXT W
                             80 PRINT"Z=",#1,Q,".",@(1),@(2),@(3), ...@(N)

_NOTE TIME_ has been noted by many to control speed of operations to some
extent.  Setting it =0 makes things operate the fastest.  Negative numbers
yield very slow results.  You can also go back and forth to tape faster
with :PRINT;NT=1 ;LIST   Using NT=0 here doesn't always work.

_INCLUDED_ this month are short enough to put on a page.  The form that
I used was provided by Chuck Thomka, 1228 W.222 St., Torrance CA 90502.
It iS a handy way to keep things in order.  Program listing should be
reviewed as a training aid, to help in your own understanding.

--------------------------------------------------------------------------------
Page 35 - [SIMON listing by Brett Bilbrey and Joe Borrello - not included]

--------------------------------------------------------------------------------
Page 36 - [CLOCK listing by J. COUSINS - sideways - did not scan]

--------------------------------------------------------------------------------
Page 37 -

_ZGRASS COMMANDS_ are listed here. [in addition to Tiny BASIC commands]
These are some of the unique ones planned for the Keyboard's language.
The machine I saw had a total of 66 commands.  This page followed "page 36"
of the article reproduced in ARCADIAN #2, pages 11 to 14

command name    function

box             draws a rectangle on the screen & has options for building
                picture prototype lists
*change         changes the values of an endpoint in a picture prototype list
circle          draws an ellipse on the screen & has options for building
                picture prototype lists
clear           clears the screen
*close          closes off an open picture prototype list
colors          chooses 4 colors of 256 for screen use
*compile        compiles code for speed
copy            makes a copy of a picture prototype with a new name
delete          deletes and reclaims storage of a named thing
display         causes a picture prototype to be exclusive or'ed onto
                the screen and be updated when necessary
*film           sets up filming mode for a Super 8 camera
*fetch          retrieves a given endpoint in a picture prototype list
get             gets a macro, array, picture prototype list, etc.
                from tape, disk, etc.
group           collects picture prototypes into a group which can be
                referenced with a single name. Transformations may be
                done to the group as a whole or to individual members.
help            prints commands and required argument types
ieee            provides interface to IEEE bus
input           used to input numbers, strings from terminal
                or passed argument lists
line            draws a vector & has options for building
                picture prototype lists
memory          gives a usage map of memory
move            attaches a picture prototype to two variables, devices, etc.
                so that when they change, the prototype is automatically
                erased and redrawn in the new position with options for
                "exclusive or" or "load/store" read and write to screen
*onerror        traps errors to a user's routines
*open           allocates storage and starts up a picture prototype list
*pattern        allows a pixel list to be directly built rather than snapped
play            interprets a string, array or picture prototype as a
                musical score to be played by the three-voice synthesizer
put             stores a macro, array, picture prototype list, etc.
                on tape, disk, etc.
rename          renames a named thing to a new name
*rotate         like move but the prototype is rotated
*scale          like move but the prototype is scaled
select          causes picture prototypes to be switched
                round-robin fashion on the screen
snap            takes a screen image in rectangular bounds
                and makes it into a movable picture prototype
sync            tells the system how much time to devote to
                interrupt-level updating versus command processing
*vip            allows a macro to be executed at interrupt level
                (stands for "very important program")

[note: The commands beginning with a '*' are in the 16k extension.]

-------------------------------------------------------------------------------
Page 38 - [REVERSE by Brett Bilbrey program listing - sideways - did not scan]

_GAME INSTRUCTIONS_ These games were sent by Brett Bilbrey who welcomes
comments and suggestions at 14430 Barclay, Dearborn, MI 48126.
     SIMON: One player, Hand Controller
            The computer shows you a pattern that you have to repeat,
            using joy stick controls.
     REVERSE: One player, Hand Controller
            The object is to get 9 number in order (smallest at the left)
            that are initially in random order. Use the knob to identify
            the numbers to be moved, and the trigger to move them.

     REVERSE CORRECTIONS (from page 46)
       Revise line 260 CY=-20;PRINT"   YOU WON IN",;TV=T[divide sign]10+48;
                       TV=T-T[divide]10x10+48;PRINT "MOVES"
                   270 GOTO10
                   280 CX=-50;CY=0

_ _ _ _ _ _ _ _ _ _ _ _ _ _ [fold on the dotted line] _ _ _ _ _ _ _ _ _ _ _ _ _

ARCADIAN                                          [Place US postage stamp here]
Robert Fabris, Boss
3626 Morrie Dr.
San Jose, CA 95127

          ===========
          First Class             To: [Address label goes here]
          ===========

------------------------------ [end of Issue 05] ------------------------------
